package com.eastfair.transaction.mq.service;

import com.eastfair.mq.model.MySimpleMessage;
import org.apache.rocketmq.spring.core.RocketMQLocalTransactionState;

public interface BaseTransactionService<T> {
    /**
     * 发送队列，预发送，发送后执行本地方法，之后在commit发送
     */
    void sendQueueMessage(Object object);

    /**
     * 组装共享header头数据
     */
    void assembleContextData(MySimpleMessage message);

    /**
     * 执行本地事务功能
     */
    RocketMQLocalTransactionState executeCommit(T t);
    /**
     * 回查事务
     */
    RocketMQLocalTransactionState backTransaction(T t);


    /**
     * 收到mq消息的业务处理
     */
    void executeBusinOfReceiveMsg(T t);
}
